let name = '杨英承', age = 27, money = 20
let myself = '', ohtherMyself = ''
const effect1 = () => myself = `${name}今年${age}岁，存款${money}元`
const effect2 = () => ohtherMyself = `${age}岁的${name}居然有${money}元`

effect1() // 先执行一次
effect2() // 先执行一次
console.log(myself) // 杨英承今年27岁，存款20元
console.log(ohtherMyself) // 杨英承今年27岁，存款300元
money = 300

const dep = new Set()// 有去重功能
function track () {
    dep.add(effect1)
    dep.add(effect2)
}
function trigger() {
    dep.forEach(effect => effect())
}

track() // 收集依赖
trigger() // 通知变量myself和otherMyself进行更新

console.log(myself) // 杨英承今年27岁，存款20元
console.log(ohtherMyself) // 杨英承今年27岁，存款300元

name = "yangyingcheng";
trigger();
console.log(myself) // 杨英承今年27岁，存款20元
console.log(ohtherMyself)